﻿<?
/*
    Статический класс для работы с MYSQL
    
*/
class MyDB
 {
         Static Private $db = null;
         Static Private $result = null; 
		/*Конструктору передаем адрес, имя пользователя, пароль, имя базы данных, порт, а также кодировку для соединения.
		По умолчанию используется utf8*/ 
 
         
		 Public Static Function Connect($host, $user, $password, $base, $port = null, $charset = 'utf8')
		 {
				self::$db = new mysqli($host, $user, $password, $base, $port);
                self::$db->set_charset($charset);
		 }
 
 /*основная и единственная функция, которая выполняет запрос и возвращает результат его работы*/ 
 
         public Static function Query($query)
         {
                 if(!self::$db)
                         return false; 
 
 /*очищаем предыдущий результат*/ 
 
                 if(is_object(self::$result))
                         self::$result->free(); 
 
 /*выполняем запрос*/ 
 
                 self::$result = self::$db->query($query); 
 
 /*если есть ошибки - выводим их*/ 
 
                 if(self:: $db->errno)
                         die("mysqli error #".self::$db->errno.": ".self::$db->error); 
 
 /*если в результате выполнения запроса (например SELECT...) получены данные - возвращаем их.
 ВНИМАНИЕ! данные всегда возвращаются в массиве, даже если запрос возвращает одну запись.*/ 
 
                 if(is_object(self::$result))
                 {
                         while($row = self::$result->fetch_assoc())
                                 $data[] = $row;
                         
                         return $data;
                 } 
 
 /*если результат отрицательный - возвращаем false*/ 
 
                 else if(self::$result == FALSE)
                         return false;
                         
 /*если запрос (например UPDATE или INSERT) затронул какие-либо строки - возвращаем их количество*/ 
 
                 else return self::$db->affected_rows;
         }
 }
 
 ?>